function stackCode(cache) {
    let children = cache.children;
    let biggest = children[0];
    for (let i = 1; i < children.length; i++) {
        if (children[i].data.width > biggest.data.width) {
            biggest = children[i];
        }
    }
    let needSizedBox = biggest.data.width != cache.data.width || biggest.data.height != cache.data.height;
    
    let code = `
    Stack(
        alignment: Alignment.center,
        children: [
    `;
    if (needSizedBox) {
        code += `SizedBox(width: ${unit(cache.data.width)}, height: ${unit(cache.data.height)}),`;
    }
    if (cache.children && cache.children.length > 0) {
        cache.children.sort((a, b) => {
            return a.index - b.index
        });

        for (let i = 0; i < cache.children.length; i++) {
            let child = cache.children[i];
            let childData = child.data;
            let childCode = doExport(child);

            if (!needSizedBox && child == biggest) {
                code += `
                ${childCode},
                `;
                continue;
            }

            let parentData = cache.data;
            let posCode = positionedCode(parentData, childData, childCode);
            code += posCode;
        }
    }

    code += `
        ],
    )`;
    return code;
}